package com.semac.shared.model;

import java.io.Serializable;

public class Pessoa implements Serializable, Comparable<Pessoa>{
	private static final long serialVersionUID = 7563161027422020661L;
	private String nome;
	private String email;
	private Integer cartaoUfrgs;
	private Integer idPessoa;
	private boolean ehMinistrante = false;
	private boolean ehComex = false;
	private boolean ehComgrad = false;
	private String senha = "";
	
	
	public Pessoa() {
	}
	
	
	public Pessoa(String nome, String email, Integer cartao, Integer pessoaId) {
		this.nome = nome;
		this.email = email;
		this.cartaoUfrgs = cartao;
		this.idPessoa = pessoaId;
	}
	
	public Pessoa(String nome, String email, Integer cartao, String senha) {
		this.nome = nome;
		this.email = email;
		this.cartaoUfrgs = cartao;
		this.senha = senha;
	}
	
	
	public Pessoa(String nome, String email, Integer cartao, Integer pessoaId, boolean ehMinistrante, boolean ehComex, boolean ehComgrad) {
		this(nome,email,cartao,pessoaId);
		this.ehMinistrante = ehMinistrante;
		this.ehComex = ehComex;
		this.ehComgrad = ehComgrad;
	}

	public Pessoa(Integer integer) {
		this.idPessoa = integer;
	}


	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Integer getCartaoUfrgs() {
		return cartaoUfrgs;
	}

	public void setCartaoUfrgs(Integer cartaoUfrgs) {
		this.cartaoUfrgs = cartaoUfrgs;
	}

	public Integer getIdPessoa() {
		return idPessoa;
	}


	public boolean ehMinistrante() {
		return ehMinistrante;
	}


	public boolean ehComex() {
		return ehComex;
	}

	public boolean ehComgrad() {
		return ehComgrad;
	}


	public String getSenha() {
		// TODO Auto-generated method stub
		return senha;
	}
	
	public void setSenha(String senha){
		this.senha = senha;
	}
	
	
	@Override
	public boolean equals(Object obj) {
		if (obj == null || !(obj instanceof Pessoa))
			return false;
		else 
			return ((Pessoa)obj).getIdPessoa() == this.getIdPessoa();
	}
	
	//o hash code aqui pode ser o id, pois cada pessoa tem id unico.
	@Override
	public int hashCode() {
		return this.getIdPessoa();
	}


	@Override
	public int compareTo(Pessoa pessoa) {
		return this.getNome().compareTo(pessoa.getNome());
	}
	
}
